The present invention relates to a data transfer method, and more particularly to a data transfer method of a data communication system in which: a receiving side that received data transmits a transmission confirmation signal that indicates whether or not the data was received properly; a sending side makes reference to the confirmation signal and retransmits that data when the receiving side did not receive the data properly.
From the aspect of ease of use and cost, system have been constructed that use IP (Internet Protocol) and other related protocols as today's communication systems. Protocol groups that are on the basis of this IP protocol can be applied not only to fixed-line communication systems, but to mobile communication systems as well. Moreover of this protocol group, the SIP (Session Initiation Protocol) is becoming the standard protocol used for call control. In next-generation network systems, attempts are being made to build an integration system that is based on an IMS (IP Multimedia Subsystem) that uses this SIP protocol, such that all fixed-line communication networks and mobile communication networks are connected this integration system.
LTE/SAE System
FIG. 15 illustrates an example of the construction of an LTE/SAE (Long Term Evolution/System Architecture Evolution) system, which is a next generation network system (Evolved 3GPP system) that connects to an IMS (refer to 3GPP TR R3.018 vo. 4.1 (2006-05)). The LTE/SAE system comprises eNB (evolved-UTRAN NodeB) 1a to 1n, which are base stations, access gateways aGW (evolved-UTRAN Access Gateway) 2a to 2b, which bundle and control some of the base stations, and an IASA (Inter Access System Anchor) 3, which is an anchor for the overall network.
The base stations eNB 1a to 1n comprise a functions that are nearly the same as the function of a conventional bas station NB and radio network controller RNC. During call connection, a user terminal and eNB are connected by RRC (Radio Resource Control), after which the user terminal and aGW are connected by Attach, and the aGW is notified of the unique number (terminal ID) of the user terminal. The aGW 2a to 2b control transmission/reception of messages between the user terminals 4a, 4b and the IASA 3, and together with the eNB 1a to in, form an LTE-RAN (Radio Access Network).
The IASA 3 having a router like function, connects to the IMS 5, as well as connects to a HSS (Home Subscriber Server) 6 that saves subscriber profiles. After RCC connection is completed, the HSS 6 performs verification of the user terminals via the IASA 3 and aGW 2a, 2b, and the aGW 2a, 2b register with the HSS 6 that they are in charge of the current call.
After verification and registration are completed, the IASA 3 receives SIP messages for call control from the user terminals via the eNB 1a to in and aGW 2a to 2b, then sends the messages to the IMS 5, and sends SIP messages for call control that are received from the IMS to the user terminals 4a, 4b via the aGW 2a to 2b and eNB 1a to 1n. Moreover, after the connection control is completed, the IASA 3 sends data, that is received from to user terminals via, the eNB 1a to 1n and aGW 2a to 2b to the IMS 5 and sends data that is received from the IMS 5 to the user terminals 4a, 4b via the aGW 2a, 2b and eNB 1a to 1n. The IASA 3 and aGW 2a, 2b form a core network CN.
In the LTE/SAE system described above, an aGW that performs calling outgoing and called processing (RRC connection setting) that connects a user terminal to a service network has been basically decided for each eNB. In the figure, the RCC connection setting for the user terminal that communicates with eNB 1a to 1b is basically performed by aGW 2a, and the RCC connection setting for the user terminal that communicates with eNB 1c to 1n is basically performed by aGW 2b. 
However, as illustrated in FIG. 16, in the case of a Handover that occurs when the user terminal 4a moves, Handover processing is performed so that connection continues even though eNB 1c is outside the jurisdictional control of aGW 2a. The interface between the aGW and eNB that makes this processing possible is called S1-flex.
Handover
FIG. 17 is a drawing explaining handover in a LTE/SAE system, and FIG. 18 is a drawing explaining the currently assumed handover procedure in a LTE/SAE system. Here, the base station that the user terminal 4a is communicating with before changing a serving base stations due to a handover is called the source base station (SeNB), and the base station that the user terminal 4a will communicate with after changing is called the target base station (TeNB).
The user terminal 4a uses a Measurement Report to notify the source base station 1a that a handover H0 is necessary (step (1)).
Based on the contents of the Measurement Report, the source base station 1a designates a target base station 1b (step (2)), sends UE Context to that target base station 1b and requests that it prepare for a handover H0 (step (3)). The UE Context contains information that is necessary for the target base station 1b to communicate with the user terminal 4a. 
The target base station 1b stores the received UE Context in an internal buffer memory, then obtains and maintains the resources that are necessary for communication with the user terminal 4a (step (4)). After preparation for a handover H0 is complete as described above, the target base station 1b reports to the source base station 1a that preparation is complete (UE Context Confirmation: step (5)).
After receiving the UE Context Confirmation, the source base station 1a begins sending UP data (User Plane Data) that is received from the aGW 2a and saved to the target base station 1b (UP Data Forwarding), and using a H0 Command, notifies the user terminal 4a that handover has begun (step (6)).
After receiving the H0 Command, the user terminal 4a exchanges synchronization data with the target base station 1b and establishes synchronization (step (7)). After synchronization has been established, the user terminal 4a notifies the target base station 1b that handover is complete (H0 Response; step (8)).
After receiving the H0 Response, the target base station 1b sends a request to the aGW 2a to switch the path that goes to the source base station 1a to the target base station 1b (Path Change Request: step (9)). In response to this, the aGW 2a switches the path and sends a path change response (Path Change Confirmation) to the target base station 1b (step (10)). After receiving the Path Change Confirmation, the target base station 1b notifies the source base station 1a that handover H0 is complete (H0 Complete: step (11)). The path between the source base station 1a and the aGW 2a is then eliminated.
Path Change During Handover
FIG. 19 and FIG. 20 are drawings explaining the change of the path for Downlink/Uplink Data during a handover. Downlink Data is data from the network side to a user terminal, and Uplink Data is data from a user terminal to the network side.
Downlink Data is first sent along the path aGW 2a→source base station 1a→user terminal 4a (see (a) of FIG. 19). In this state, in step (6) illustrated in FIG. 18, when the source base station 1a notifies the user terminal 4a that a handover has begun using a H0 command, the source base station 1a forwards all of the data coming from the aGW 2a to the target base station 1b (see (b) of FIG. 19).
After that, in step (8), after the user terminal 4a notifies the target base station 1b that handover is complete, the target base station 1b sends the data that was forwarded from the source base station 1a to the user terminal 4a (see (c) of FIG. 19). In addition, in step (9), when the aGW 2a receives a request to switch the path, it switches the destination for sending data from the source base station 1a to the target base station 1b and sends data to the target base station 1b, after which the target base station 1b sends the received data to the user terminal 4a. When sending data to the user terminal 4a, the target base station 1b must begin sending data received from the aGW 2a after sending all of the data that was forwarded from the source base station 1a (Reordering is necessary).
Uplink data is first sent along the path user terminal 4a→source base station 1a→aGW 2a (see (a) of FIG. 20). In this state, in step (6) illustrated in FIG. 18, when the source base station 1a notifies the user terminal 4a that handover has begun using a H0 Command, the user terminal 4a stops data transmission, and starts control to establish synchronization with the target base station 1b. The source base station 1a sends all of the data received from the user terminal 4a up to that time to the aGW 2a (see (b) of FIG. 20).
After that, in step (8), the user terminal 4a notifies the target base station 1b that handover is completed and restarts sending Uplink data.
The transmission of Uplink data differs from the transmission of Downlink data in that there is no forwarding and it is not necessary to consider Reordering.
Protocol Stack and Processing of U-Plane Data of Each Device
FIG. 21 is a drawing explaining the protocol stack of the U-plane data of the user terminal (UE) 4, base station (eNB 1) and aGW 2, where the protocol stack comprises four layers; a physical layer (PHY), MAC (Medium Access Control) layer, RLC (Radio Link Control) layer and PDCP (Packet Data Convergence Protocol) layer. Data transmission is performed between the user terminal (UE) 4 and aGW 2 in the PDCP layer, and data transmission is performed between the user terminal 4 and base station 1 in the RLC layer. The main function of each protocol is as described below.
(1) PDCP: In the PDCP layer, the sending side compresses the high-level protocol header, attaches a sequence number and transmits data. The receiving side checks the sequence number and a discard process of redundant reception. Retransmission is not performed in the PDCP layer.
(2) RLC: The RLC layer is a layer having a retransmission function, where based on the sequence number that is attached to the data from the PDCP layer, the sending side attaches a new sequence number in the RLC layer, and transmits the data.
For example, when data having sequence number N is received from the PDCP layer, that data is divided into a plurality of divisions and in the RLC layer the sending side attaches sequence numbers N(1), N(2), N(3), , , , to each data division and transmits the data. The receiving side uses those sequence numbers and notifies the sending side with a transmission confirmation signal (Ack/Nack signal) whether or not the data was received properly. When an Ack signal is returned, the sending side discards saved data; however, when a Nack signal is returned, retransmits the data.
(3) MAC: The MAC layer is a layer that multiplexes/separates data of the RCL layer. In other words, the sending side multiplexes the data of the RLC layer as transmission data, and the receiving side separates the received MAC layer data into RLC layer data.
(4) PHY: The PHY layer is a layer for performing radio transmission of data between a user terminal 4 and base station 1, where MAC layer data is converted to radio transmission data, or radio transmission data is converted to MAC layer data.
FIG. 22 is a drawing illustrating the construction of each device, where the user terminal (UE) 4 comprises PDCP processing units 4-1a to 4-1n and RLC processing units 4-2a to 4-2n that are provided for each QoS unit (information transfer performance, information transfer speed, etc., for audio, video and the like), and a MAC/PHY layer processing unit 4-3 that multiplexes the RLC data created by each of the RLC processing units, and converts the data to radio transmission data. The base station (enB) 1 comprises a MAC/PHY layer processing unit 1-1 and RLC processing units 1-2a to 1-2n that are provided for each QoS unit. The MAC/PHY layer processing unit 1-1 converts radio transmission data to MAC data, separates that MAC data to RLC data, and inputs the RLC data to the PDCP processing units 1-2a to 1-2n, then the RLC processing units 1-2a to 1-2n put together several RLC data to create a packet and send the packet to the aGW2. Retransmission processing is performed for each data between the base station (eNB) 1 and the user terminal (UE) 4 on the RLC layer level.
Retransmission Procedure by Sequence Number
FIG. 23 is a drawing explaining the retransmission procedure by sequence number.
Normally, as illustrated in (A) of FIG. 23, the base station (eNB) 1 converts the Data(N0) that was received from the aGW 2 to RLC layer Data(n0), and together with saving that RLC layer Data(n0) in a buffer memory, sends that Data(n0) to the user terminal (UE) 4. When the user terminal (UE) 4 is able to properly receive the Data(n0) (normal reception), the user terminal 4 notifies the base station (eNB) 1 that the data was properly received by sending an Ack(n0) signal. After receiving the Ack(n0) signal, the base station 1 deletes the Data(n0) that is saved in the buffer memory.
N0 is the sequence number that was attached in the PDCP layer, n0 is the sequence number in the RLC layer and is created based on the sequence number N0. Moreover, in the figure, in order to simplify the explanation, only one item of RLC layer Data(n0) is illustrated to correspond with one item of PDCP layer Data(N0), however, actually one item of PDCP layer Data(N0) is separated into a plurality of RLC layer data, and sequence numbers are attached to each item of data in the RLC layer, such as Data(n1), Data(n2), Data(n3), and the like.
When Data(n0) is not properly received (abnormal reception), the retransmission procedure described below is performed (see (B) of FIG. 23). After RLC layer Data(n0) is sent from the base station 1, when that Data(n0) could not be properly received, the user terminal 4 notifies the base station 1 of the abnormal reception by sending a Nack(n0) signal. When the base station 1 receives a Nack(n0) signal, it retransmits Data(n0). After this retransmission, when Data(n0) is properly received, the user terminal 4 notifies the base station 1 that data was properly received by sending an Ack(n0) signal. After receiving the Ack(n0) signal, the base station 1 deletes Data(n0) that is saved in the buffer memory.
In the example above, processing was performed for each single item of RLC layer data, however, it is possible to send a plurality of items of RLC layer data before checking whether or not the data was properly received. The number of items of RLC data which can be sent before checking the reception is called the window size. In FIG. 23, (A) and (B) are examples of a window size of 1.
In FIG. 23, (C) is an example of proper reception when the window size is 3. After properly receiving three items of data, Data(n0), Data(n1) and Data(n2), the receiving terminal 4 notifies the base station 1 with a single Ack signal (in this case Ack(n2)) for the three items of data received properly. After receiving the Ack(n2) signal, the base station 1 determines that data up to the sequence number n2 were properly received and deletes the three saved items of data; Data(n0), Data(n1) and Data(n2).
On the other hand, when, for example, Data(n1) could not be received properly, the receiving terminal 4 sends a Nack(n1) signal (see (D) of FIG. 23) to notify the base station 1 that reception was not proper. After receiving the Nack(n1) signal, the base station 1 deletes the saved data Data(n0) before sequence number n1, and retransmits the data from sequence number n1 and later; Data(n1) and Data(n2). When the retransmitted data, Data(n1) and Data(n2), are properly received, the user terminal 4 sends an Ack(n2) signal to notify the base station 1 that reception was normal. After receiving the Ack(n2) signal, the base station 1 deletes Data(n1) and Data(n2) that are saved in the buffer memory.
The procedure described above is for Downlink transmission, however a similar procedure is also performed for Uplink transmission.
Processing when an Error is Detected in the Transmission Confirmation Signal
In a radio transmission zone, not only transmission data, but the Ack/Nack signals, which are transmission confirmation signals, may also become corrupted and mistakenly received. FIG. 24 is a drawing explaining the processing procedure when an error is detected in a transmission confirmation signal.
As illustrated in (A) of FIG. 24, when the confirmation signal Ack(n0) is mistakenly detected as a Nack(n0) signal, the base station 1 retransmits Data(n0). The user terminal 4 detects that there has been redundant reception of Data(n0), and together with eliminating one, resends the Ack(n0) signal. After receiving the Ack(n0) signal, the base station 1 deletes Data(n0) that is saved in the buffer memory. From the above processing, when an Ack signal is mistakenly detected as being a Nack signal, the user terminal only receives the same data again redundantly, and by eliminating that data no problems occur.
As illustrated in (B) of FIG. 24, in the case where the window size is 3, when the confirmation signal Ack(n2) is mistakenly detected as Nack(n2), the base station 1 performs retransmission of Data(n2), and deletes Data(n0) and Data(n1) that are saved. The user terminal 4 detects redundant reception of Data(n2), and eliminates one, as wells as resends the Ack(n2) signal. After receiving the Ack(n2) signal, the base station 1 deletes Data(n2) that is saved in the buffer memory. From the above processing, when an Ack signal is mistakenly detected as a Nack signal, even when the window size is a plurality of data, the user terminal only receives the same data again redundantly, and no problem occurs. The Nack(n2) signal indicates that the data before sequence number n2 have been properly received, or in other words, includes the meaning of the signal Ack(n1).
When the window size is a plurality of data and the Ack signal is mistakenly detected as the Nack signal, there is a possibility that there will be an error in the sequence number. In a case where the window size 1, it is possible to eliminate the bad effect due to the possibility by not using the sequence number in the Ack/Nack signal. In a case where the window size is a plurality of data and a Nack signal is returned as illustrated in (C) of FIG. 24, the base station 1 retransmits all of the data, Data(n0) to Data(n2), of the windows size that are saved in the buffer memory regardless of the sequence number of that Nack signal. Moreover, after receiving the Ack(n2) signal, the base station 1 deletes Data(n0) to Data(n2) that are saved.
Problem when Detecting an Error in the Transmission Confirmation Signal
As was explained above, when an Ack signal is mistakenly detected as a Nack signal no problem occurs. However, a problem occurs when a Nack signal is mistakenly detected as an Ask signal. FIG. 25 is a drawing explaining the control procedure when a Nack signal is mistakenly detected as an Ask signal.
As illustrated in (A) of FIG. 25, when the Nack(n0) signal is mistakenly detected as the Ask(n0) signal, the base station 1 deletes Data(n0) that is saved in the buffer memory, and does not perform retransmission. The user terminal monitors the time that has elapsed since the Nack(n0) was sent, and when Data(n0) has not been received after a set amount of time has passed, sends the Nack(n0) signal to the base station 1 again (retransmission request due to timeout). Even though the base station correctly receives the Nack(n0) signal, Data(n0) has already been deleted from the buffer memory, so is not able to perform retransmission, and a problem occurs in that the data has been lost.
In the procedure above, by sending a retransmission request due to a timeout from the user terminal 4 the base station 1 knows of the necessity for retransmission. The base station 1 also able to know of the necessity for retransmission of data based upon the Nack response sent from the user terminal for the next transmission data. In other words, as illustrated in (B) of FIG. 25, when the Nack(n0) signal is mistakenly detected to be the Ack(n0) signal, the base station 1 deletes Data(n0) that is saved in the buffer memory, and does not perform retransmission. The base station then sends the next data, Data(n1), to the user terminal. However, the user terminal 4 is waiting to receive Data(n0), and when it receives Data(n1), sends the Nack(n0) signal to the base station 1 again. Even though the base station 1 receives the Nack(n0) signal, Data(n0) has already been deleted from the buffer memory, so is not able to perform retransmission, and a problem occurs in that the data has been lost.
Retransmission Operation During a Handover
FIG. 26 is a drawing explaining the retransmission control procedure for retransmitting Downlink data during a handover. FIG. 26 does not clearly illustrate the saving and deletion of data in a buffer memory, however, after data has been transmitted, it is saved in a buffer memory, and when there is notification that the data has been properly received, the data is deleted from the buffer memory. The same is true in the following figures as well.
First, data is sent along the path aGW 2a→source base station 1a→user terminal 4a. The source base station 1a creates Data(n0) from Data(N0) that is received from the aGW 2a, and sends that Data(n0) to the user terminal 4a, and after properly receiving Data(n0), the user terminal 4a sends an Ack(n0) signal to the source base station 1a. Next, the source base station 1a creates Data(n1) from Data(N1) that is received from the aGW 2a, and sends that Data(n1) to the user terminal 4a. At that time, when handover start conditions are satisfied based on the handover control that is being performed at the same time, the source base station 1a uses an H0 Command to notify the user terminal 4a of the start of the handover even without receiving an Ack/Nack signal. By receiving the H0 Command, the user terminal 4a immediately starts control for establishing synchronization with the target base station 1b without sending an Ack/Nack signal for Data(n0) to the source base station 1a. On the other hand, the source base station 1a forwards all of the data received from the aGW 2a to the target base station 1b. In this forwarding of data, the source base station 1a first forwards Data(n1), for which confirmation of proper reception was not obtained from the user terminal 4a, then forwards Data(n2), . . . on.
After that, when the user terminal 4a notifies the target base station 1b with a H0 Response that handover is complete, the target base station 1b sends a request (Path Change Request: PC-Req) to the aGW 2a to change the path that goes to the source base station 1a to the target base station 1b. In so doing, the aGW 2a changes the path and returns a path change response (PC-Res) to the target base station 1b, after which the aGW 2a sends data starting from Data(N3) to the target base station 1b. 
Moreover, after receiving the H0 Response, the target base station 1b sends the data that was forwarded from the source base station 1a in order starting from Data(n1), and after properly receiving the data, the user terminal 4a returns an Ack(n1) signal. When the target base station 1b sends data to the user terminal 4a, after all of the data (Data(n1), Data(n2)) that were forwarded from the source base station 1a have been sent, the target base station 1b must start sending Data(n3) that was directly received from the aGW 2a (Reordering is necessary).
As was explained above, when the source base station 1a does not receive an Ack/Nack signal for data (Data(n1) in the figure) that was sent to the user terminal 4a due to the start of a handover, the source base station 1a forwards that data to the target base station 1b, and that target base station 1b sends that data to the user terminal again, so the data is not lost. The user terminal 4a then deletes one of the redundantly received data.
FIG. 27 is a drawing explaining the retransmission control procedure for the retransmission of Uplink data during a handover.
First, data is sent along the path user terminal 4a→source base station 1a→aGW 2a. After receiving Data(n0) from the user terminal, the source base station 1a converts that Data(n0) to Data(N0) and sends Data(N0) to the aGW 2a, as well as sends an Ack(n0) signal to the user terminal 4a when Data(n0) is received properly. Next, after receiving Data(n1) from the user terminal 4a, the source terminal 1a converts that Data(n1) to Data(N1) and sends Data(N1) to the aGW 2a, At that point in time, when conditions for starting handover are satisfied based on handover control that is being performed at the same time, the source base station 1a uses a H0 Command to notify the user terminal 4a that handover has begun before sending an Ack/Nack signal for Data(n1). In doing so, the user terminal 4a stops data transmission, and immediately begins control for establishing synchronization with the target base station 1b. After the establishment of synchronization is completed, the user terminal 4a uses a H0 Response to notify the target base station 1b that handover is completed. After doing this, it is not illustrated in the figure, however, the target base station 1b performs path change control with the aGW 2a, after which the target base station 1b can directly send data received from the user terminal 4a to the aGW 2a. 
After that, the user terminal 4a sends data to the target base station 1b in order starting from Data(n1) for which an Ack/Nack signal indicating the reception result was not received, then the target base station 1b converts that Data(n1) to Data(N1) and sends it to the aGW 2a. At this time, the aGW 2a redundantly receives Data(N1), however discards one. Moreover, each time data is received from the user terminal 4a, the target base station 1b sends an Ack/Nack signal indicating the reception result to the user terminal 4a. 
As was described above, when the user terminal does not receive an Ack/Nack signal from the source base terminal for data that is sent (Data(n1) in the figure) due to the handover, it restarts sending that data after handover is complete, so data is not lost.
Problems During Handover
In the case described above, even though a handover occurs during the transmission of data, data is not lost, so there is no problem. However, when an Ack signal is mistakenly detected to be a Nack signal, data is lost in the retransmission of data.
FIG. 28 is a drawing explaining the retransmission control procedure for Downlink data during a handover, and is an example of the sequence illustrated in FIG. 26 where the user terminal 4a is not able to properly receive Data(n0) and sends a Nack(n0) signal to the source base station 1a, and the source base station 1a mistakenly received that signal as an Ack(n0) signal, after which handover control started.
After mistakenly receiving an Ack(n0) signal instead of an Nack(n0) signal, the source base station 1a deletes Data(n0) that is saved in the buffer memory. Therefore, when forwarding data based on the handover, the source base station 1a does not forward Data(n0) to the target base station 1b but forwards the data received from the aGW 2a starting from Data(n1) after Data(n0). After that, when handover is complete, the source base station 1a sends the forwarded data to the user terminal 4a as in the case illustrated in FIG. 26. When doing that, the source base station 1a does not send Data(n0) that was not properly received, but sends data starting from Data(n1). As a result, the user terminal 4a detects that a skip occurred in the sequence numbers of the received data, and sends a Nack(n0) signal for Data(n0) that was not received to the target base station 1b. However, target base station 1b does not have Data(n0), so the data is lost.
FIG. 29 is a drawing explaining the retransmission control procedure for Uplink data during a handover, and is of the case in the sequence illustrated in FIG. 27 where the source base station 1a is not able to properly receive Data(n1) and sends a Nack(n1) signal to the user terminal 4a, and that user terminal 4a mistakenly receives an Ack(n1) signal, after which handover control begins.
After mistakenly receiving an Ack(n1) signal instead of a Nack(n1) signal, the user terminal 4a deletes Data(n1) that is saved in the buffer memory. After that, when handover is complete and it becomes possible to send data, the user terminal 4a starts sending data starting from Data(n2). However, the target base station 1b that receives Data(n2) does not know that Data(n1) was not received, so without generating an Nack(n1) signal, converts Data(n2) to Data(N2) and sends that data to the aGW 2a. The aGW 2a has not received Data(N1), so after receiving Data(N2), detects that there was a jump of one in the sequence numbers, however the data is lost and the aGW 2a can do nothing.
A data retransmission control method has been disclosed for avoiding the problem of not retransmitting data when a Nack signal is mistakenly received as an Ack signal as described above (see Japanese patent application No. 2004-64691A).
However, this related art calculates the reliability using the reception quality, and based on that reliability determines whether the Ack signal is a real Ack signal according to the reception success, or whether a Nack signal that indicates reception failure has been mistakenly detected as an Ack signal. In this method, it is not possible to determine for certain that a Nack signal was mistakenly received as an Ack signal, so data is lost. Moreover, this related art does not cope with the case in which a Nack signal is mistakenly detected as an Ack signal and an error is concurrently detected in the sequence numbers. Furthermore, this related art does not cope with the case when a Nack signal is mistaken received as an Ack signal during a handover.